function [x,y,z]=read_gmt(grdfile)
 % READ_GMT reads GMT grid file into Matlab arrays x,y,z
 %   Usage: [x,y,z]=read_gmt(grdfile);
%    where
 %          x = east coordinate vector (eg. longitude)
 %          y = north coordinate vector (eg. latitude)
%          z = matrix of gridded values (eg. bathy grid)
%
%   Example:
 %           [x,y,z]=read_gmt('foo.grd');
 %           contour(x,y,z)
 
 % Rich Signell
 % rsignell@usgs.gov
   
 cdfid=mexcdf('open',grdfile,'nowrite');
 oldopts=mexcdf('setopts',0);
 x_range=mexcdf('varget',cdfid,'x_range',0,2);
 y_range=mexcdf('varget',cdfid,'y_range',0,2);
 spacing=mexcdf('varget',cdfid,'spacing',0,2);
 dims=mexcdf('varget',cdfid,'dimension',0,2);
 nx=dims(1);
 ny=dims(2);
 xysize=nx*ny;
 z=mexcdf('varget',cdfid,'z',0,xysize);
 mexcdf('close',cdfid);
 z=reshape(z,nx,ny);
 z=flipud(z.');
 x=x_range(1)+[0:(nx-1)]*spacing(1);
 y=y_range(1)+[0:(ny-1)]*spacing(2);